package Kernel;

public class Bus extends Vehicule {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/* #### Constructeurs #### */
	/**
	 * Constructeur par défaut de la classe Bus.
	 * La vitesse par défaut d'un objet bus est de 35km/h , et sa capacité est de 60 personnes.
	 */
	public Bus() {
		this.denomination = "defaut";
		this.capacite = 60;
		this.vitesse = 35;
		this.type = "bus";
	}

	/**
	 * Constructeur paramètré de la classe Bus. Ne prends que vitesse et capacité en entrée , le reste est fixé aux valeurs par défaut.
	 * @param capacite est la capacité du bus
	 * @param vitesse est la vitesse du bus
	 */
	public Bus(int capacite, int vitesse) {
		this.denomination = "defaut";
		this.capacite = capacite;
		this.vitesse = vitesse;
		this.type = "bus";
	}
	
	/**
	 * Constructeur paramétré de la classe Bus
	 * @param denomination est l'identifiant de l'objet bus
	 * @param capacite est la capacité du bus
	 * @param vitesse est la vitesse du bus
	 */
	public Bus(String denomination,int capacite,int vitesse){
		this.denomination = denomination;
		this.capacite = capacite;
		this.vitesse = vitesse;
		this.type = "bus";
	}

	/* #### Methodes Definies manuellement #### */

	/* #### Methodes surchargees #### */

	@Override
	public int getCapacite() {
		return this.capacite;
	}

	@Override
	public int getVitesse() {
		return this.vitesse;
	}

	@Override
	public void setCapacite(int capacite) {
		this.capacite = capacite;
	}

	@Override
	public void setVitesse(int vitesse) {
		this.vitesse = vitesse;
	}

	@Override
	public String toString() {
		return "Bus ["+ this.denomination +"] ,"+"(Capacite :" + capacite + " | Vitesse : " + vitesse + ")";
	}

	@Override
	public String print() {
		return "bus;" + this.denomination +";" +this.capacite + ";" + this.vitesse + ";";
	}

	@Override
	public void setDenomination(String denomination) {
		this.denomination = denomination;
		
	}

	@Override
	public String getDenomination() {
		return this.denomination;
	}

	@Override
	public String getType() {
		return this.type;
	}

}
